// async function async1() {
//   console.log('async1 start')   // 2
//   await async2()
//   console.log('async1 end')  // 6
// }
// async function async2() {
//   console.log('async2')   // 3
// }
// console.log('script start ')   // 1
// setTimeout(function() {
//   console.log('setTimeout')  // 8
// }, 0) 
// async1() 
// new Promise(function (resolve) {
//   console.log('promise1')  // 4
//   resolve()
// }).then(function () {
//   console.log('promise2')  // 7
// }) 
// console.log('script end')   // 5

var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];

let result = Array.from(new Set(arr.flat(Infinity))).sort((a,  b) => a - b)
console.log(result)